// PROGRAMA : IDCPB008(PROGRAMA BATCH)  22/03/2002
// BIBLIOTECA : SISP
// OBJETIVO : GERAR ARQUIVO PARA AMERICAN BANK NOTE COMPANY - ABN
// : CRIMINAL, NUMERO DO REGISTRO E INCIDENCIAS CRIMINAIS
// : PARA COMPOR O ARQUIVO D.ABNCRIM
// : USER = RENACHMA
// : PASSWORD = ABN738
// : IP = 100.249.158.131
// PDS : PDS.SOLON
// JCL : IDCPB008
// ARQUIVO(PDS): ABN.CRIM1(TAMANHO DO REGISTRO = 92)
// ATUALIZACAO : 31/03/2008

package br.com.vti.sisp_sicrim.antigo.controller.programa;

import java.io.FileWriter;
import java.io.IOException;

import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.vti.sisp_sicrim.antigo.model.SicCadastro;
import br.com.vti.sisp_sicrim.antigo.util.ExceptionProgram;
import br.com.vti.sisp_sicrim.antigo.util.Sessao;
import br.com.vti.sisp_sicrim.antigo.util.UtilBean;

/**
 * Classe : Idcpb008 OBJETIVO : GERAR ARQUIVO PARA AMERICAN BANK NOTE COMPANY - ABN *
 * 
 * @author Incode - Data: mai/2014
 * 
 */

@Resource
@Path("/antigo/idcpb008")
public class Idcpb008 {
	// Views utilizadas
	SicCadastro sicCadastroView = new SicCadastro();
	// Funcoes/subrotinas
	FuncoesGerais funcoes = new FuncoesGerais();
	FileWriter arquivo1;

	Result result;
	Sessao sessao;
	Boolean primeiraVez = false;
	private String wregCrim;
	private long wregistroEstadualGeral;
	private String i1;
	private String wobs; // END

	private int i;
	private int c = 0; // 38.039 REGISTROS GRAVADOS ATE 22/04/2002 AS 18:20 NO
						// SIC-CADASTRO

	// 42.053 REGISTROS GRAVADOS ATE 10/07/2003 AS 20:00 NO SIC-CADASTRO

	public Idcpb008(Result result, Sessao sessao) {
		this.result = result;
		this.sessao = sessao;
	}

	@Post
	public void executar() {
		try {
			main();
		} catch (Exception e) {
			ExceptionProgram excp = new ExceptionProgram();
			excp.trataErroSiscerro(e, sessao, this.getClass().getSimpleName());
		}
	}

	private void main() throws IOException {
		arquivo1 = new FileWriter(UtilBean.pathFiles() + "arquivo1");

		while (sicCadastroView.leituraIsn()) {
			// READADA
			c += 1;
			wregCrim = "";
			// MOVE
			i1 = "#";
			i = 0;
			for (i = 1; i <= 191; i++) {
				if (sicCadastroView.getObservacao(i).trim().equals("")) {
					break;
				} else {
					wregistroEstadualGeral = sicCadastroView.getRegEstadualGeral();
					wobs = sicCadastroView.getObservacao(i);

					wregCrim = UtilBean.moveSubstring(wregCrim, 0, 11, "N", wregistroEstadualGeral);
					wregCrim = UtilBean.moveSubstring(wregCrim, 11, 1, "A", i1);
					wregCrim = UtilBean.moveSubstring(wregCrim, 12, 80, "A", wobs);
					arquivo1.write(wregCrim); // / writeworkfile__
												// (;_CMDARGNFILEW;_CMDARGBUF;)
				}

			}
		}
		sicCadastroView.fecha();
		if (sicCadastroView.registrosProcessados() == 0) {
			UtilBean.mensagemTexto("#ERRO LEITURA: REGISTRO NAO ENCONTRADO NO SIC-CADASTRO");
		}

		arquivo1.close();
		UtilBean.mensagemTexto("*** TOTAL DE REGISTROS = " + c);
		return;
	}

}
